home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / X11 / tiff / README < prev    next >
Text File  |  1995-06-21  |  24KB  |  607 lines

  1. NOTE:  This directory contains only the 'libtiff' portions of Sam's TIFF
  2. distribution, as that's all that XV requires.  The full TIFF distribution
  3. (including tools, documentation, etc.) may be had via anonymous ftp on
  4. sgi.com, in the directory graphics/tiff.
  5.  
  6. --jhb, 10/31/94
  7.  
  8.  
  9. $Header: /usr/people/sam/tiff/RCS/README,v 1.22 1994/07/27 01:37:50 sam Exp $
  10.  
  11. TIFF Software Release
  12. ---------------------
  13.  
  14.     Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993, 1994 Sam Leffler
  15.     Copyright (c) 1991, 1992, 1993, 1994 Silicon Graphics, Inc.
  16.  
  17.     Permission to use, copy, modify, distribute, and sell this software and 
  18.     its documentation for any purpose is hereby granted without fee, provided
  19.     that (i) the above copyright notices and this permission notice appear in
  20.     all copies of the software and related documentation, and (ii) the names of
  21.     Sam Leffler and Silicon Graphics may not be used in any advertising or
  22.     publicity relating to the software without the specific, prior written
  23.     permission of Sam Leffler and Silicon Graphics.
  24.  
  25.     THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  26.     EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  27.     WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  28.  
  29.     IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  30.     ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  31.     OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  32.     WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  33.     LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  34.     OF THIS SOFTWARE.
  35.  
  36.  
  37.  
  38. About This Software
  39. -------------------
  40. This is software provides support for the Tag Image Format (TIFF).
  41. Included is a library, libtiff, for reading and writing TIFF, a
  42. collection of tools for doing simple manipulations of TIFF images, and
  43. documentation on the library and tools.  A random assortment of
  44. TIFF-related software contributed by others is also included.
  45.  
  46. The library, along with associated tool programs, should handle most of
  47. your needs for reading and writing files that follow the 5.0 or 6.0
  48. TIFF spec.  There is also considerable support for some of the more
  49. esoteric portions of the 6.0 TIFF spec.
  50.  
  51.  
  52. How to tell which version you have
  53. ----------------------------------
  54. The software version can be found by looking at the file named VERSION
  55. that is located at the top of the source tree; the precise alpha number
  56. is given in the file tiff.alpha.  If you have need to refer to this
  57. specific software, you should identify it as:
  58.  
  59.     TIFF <version> <alpha>
  60.  
  61. where <version> is whatever you get from "cat VERSION" and <alpha> is
  62. what you get from "cat tiff.alpha".
  63.  
  64.  
  65. TIFF Support
  66. ------------
  67. The library, should handle most of your needs for reading and writing
  68. files that follow the 5.0 or 6.0 TIFF spec.  There is also considerable
  69. support for some of the more esoteric portions of the 6.0 TIFF spec.
  70.  
  71.     o core requirements
  72.     both "MM" and "II" byte orders are handled
  73.     multiple subfiles can be read and written
  74.     editing is NOT supported in that related subfiles (e.g.
  75.       a reduced resolution version of an image) are not automatically
  76.       updated
  77.     
  78.     Tags handled: NewSubfileType, ImageWidth, ImageLength, Rowsperstrip,
  79.               StripOffsets, StripByteCounts, XResolution, YResolution,
  80.               ResolutionUnit.
  81.     o Class B for bilevel images
  82.     SamplesPerPixel = 1
  83.     BitsPerSample = 1
  84.     Compression = 1 (none), 2 (CCITT 1D), or 32773 (PackBits)
  85.     PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black)
  86.     o Class G for grayscale images
  87.     SamplesPerPixel = 1
  88.     BitsPerSample = 4, 8
  89.     Compression = 1 (none) 5 (LZW)
  90.     PhotometricInterpretation = 0 (Min-is-White), 1 (Min-is-Black)
  91.     o Class P for palette color images
  92.     SamplesPerPixel = 1
  93.     BitsPerSample = 1-8
  94.     Compression = 1 (none) 5 (LZW)
  95.     PhotometricInterpretation = 3 (Palette RGB)
  96.     ColorMap
  97.     o Class R for RGB full color images
  98.     SamplesPerPixel = 3
  99.     BitsPerSample = <8,8,8>
  100.     PlanarConfiguration = 1, 2
  101.     Compression = 1 (none) 5 (LZW)
  102.     PhotometricInterpretation = 2 (RGB)
  103.     o Class F for facsimile (proposed appendix to 5.0 spec)
  104.     (Class B tags plus...)
  105.     Compression = 3 (CCITT Group 3), 4 (CCITT Group 4)
  106.     FillOrder = 1 (MSB), 2 (LSB)
  107.     Group3Options = 1 (2d encoding), 4 (zero fill), 5 (2d+fill)
  108.     ImageWidth = 1728, 2048, 2482
  109.     NewSubFileType = 2
  110.     ResolutionUnit = 2 (Inch), 3 (Centimeter)
  111.     PageNumber, XResolution,  YResolution, Software,
  112.     BadFaxLines, CleanFaxData, ConsecutiveBadFaxLines,
  113.     DateTime, DocumentName, ImageDescription, Orientation
  114.     o Class S for separated images (in 6.0)
  115.     SamplesPerPixel = 4
  116.     PlanarConfiguration = 1, 2
  117.     Compression = 1 (none), 5 (LZW)
  118.     PhotometricInterpretation = 5 (Separated)
  119.     InkSet = 1 (CMYK)
  120.     DotRange, InkNames, DotRange, TargetPrinter
  121.     o Class Y for JPEG images (in 6.0)
  122.     SamplesPerPixel = 3
  123.     BitsPerSample = <8,8,8>
  124.     PlanarConfiguration = 1, 2
  125.     Compression = 1 (none),  5 (LZW), 6 (JPEG)
  126.     PhotometricInterpretation = 6 (YCbCr)
  127.     YCbCrCoefficients, YCbCrSubsampling, YCbCrPositioning
  128.     (colorimetry info from Appendix H; see below)
  129.     o Class "JPEG" for JPEG images (in 6.0)
  130.     PhotometricInterpretation = 1 (grayscale), 2 (RGB), 5 (CMYK), 6 (YCbCr)
  131.     (Class Y tags if YCbCr)
  132.     (Class S tags if CMYK)
  133.     Compression = 6 (JPEG)
  134.     JPEGProc = 0 (baseline)
  135.     JPEGQTables = ... (offsets to per-channel Q matrices)
  136.     JPEGDCTables = .... (offsets to per-channel DC tables)
  137.     JPEGACTables = .... (offsets to per-channel AC tables)
  138.     JPEGRestartInterval
  139.     o Tiled Images (in 6.0)
  140.     TileWidth
  141.     TileLength
  142.     TileOffsets
  143.     TileByteCounts
  144.     o Image Colorimetry Information (in 6.0)
  145.     WhitePoint
  146.     PrimaryChromaticities
  147.     TransferFunction
  148.     ReferenceBlackWhite
  149.  
  150. In addition, the library supports some optional compression algorithms
  151. that are, in some cases, of dubious value.
  152.     Compression = 32766    NeXT 2-bit encoding
  153.     Compression = 32809    ThunderScan 4-bit encoding
  154.  
  155. [JPEG compression should fit into this library simply by replacing
  156.  the existing stub JPEG compression module.  That is, all YCbCr and
  157.  JPEG-related tags are supported in this version of the library.]
  158.  
  159. The following tags are recognized and handled by the library (as
  160. described in the table).  If no use is indicated, then the library
  161. reads and writes the tag, but does not use it internally.
  162.  
  163. Tag Name        Value    R/W    Library's Use
  164. -----------------------------------------------------
  165. NewSubFileType        254    R/W    (called SubFileType)
  166. SubFileType        255    R/W    (called OSubFileType)
  167. ImageWidth        256    R/W    lots
  168. ImageLength        257    R/W    lots
  169. BitsPerSample        258    R/W    lots
  170. Compression        259    R/W    choosing compression routines
  171. PhotometricInterpretation 262    R/W    Group 3 and JPEG code
  172. Thresholding        263    R/W    
  173. CellWidth        264        parsed but ignored
  174. CellLength        265        parsed but ignored
  175. FillOrder        266    R/W    control bit order
  176. DocumentName        269    R/W
  177. ImageDescription     270    R/W
  178. Make            271    R/W
  179. Model            272    R/W
  180. StripOffsets        273    R/W    data i/o
  181. Orientation        274    R/W
  182. SamplesPerPixel        277    R/W    lots
  183. RowsPerStrip        278    R/W    data i/o
  184. StripByteCounts        279    R/W    data i/o
  185. MinSampleValue        280    R/W
  186. MaxSampleValue        281    R/W
  187. XResolution        282    R/W
  188. YResolution        283    R/W    used by Group 3 2d encoding
  189. PlanarConfiguration    284    R/W    data i/o
  190. PageName        285    R/W
  191. XPosition        286    R/W
  192. YPosition        286    R/W
  193. FreeOffsets        288        parsed but ignored
  194. FreeByteCounts        289        parsed but ignored
  195. GrayResponseUnit    290        parsed but ignored
  196. GrayResponseCurve    291        parsed but ignored
  197. Group3Options        292    R/W    used by Group 3 code
  198. Group4Options        293    R/W
  199. ResolutionUnit        296    R/W
  200. PageNumber        297    R/W
  201. ColorResponseUnit    300        parsed but ignored
  202. TransferFunction    301    R/W
  203. Software        305    R/W
  204. DateTime        306    R/W
  205. Artist            315    R/W
  206. HostComputer        316    R/W
  207. Predictor        317    R/W    used by LZW code
  208. WhitePoint        318    R/W
  209. PrimaryChromacities    319    R/W
  210. ColorMap        320    R/W
  211. TileWidth        322    R/W    data i/o
  212. TileLength        323    R/W    data i/o
  213. TileOffsets        324    R/W    data i/o
  214. TileByteCounts        324    R/W    data i/o
  215. BadFaxLines        326    R/W
  216. CleanFaxData        327    R/W
  217. ConsecutiveBadFaxLines    328    R/W
  218. InkSet            332    R/W
  219. InkNames        333    R/W
  220. DotRange        336    R/W
  221. TargetPrinter        337    R/W
  222. ExtraSamples        338    R/W    lots
  223. SampleFormat        339    R/W
  224. JPEGProc        512    R/W    JPEG code
  225. JPEGQRestartInterval    515    R/W    JPEG code
  226. JPEGQTables        519    R/W    JPEG code
  227. JPEGDCTables        520    R/W    JPEG code
  228. JPEGACTables        521    R/W    JPEG code
  229. YCbCrCoefficients    529    R/W    used by TIFFReadRGBAImage
  230. YCbCrSubsampling    530    R/W    tile/strip size calculations
  231. YCbCrPositioning    531    R/W
  232. ReferenceBlackWhite    532    R/W
  233. Matteing        32995    R    (obsoleted by ExtraSamples)
  234. DataType        32996    R    (obsoleted by SampleFormat)
  235. ImageDepth        32997    R/W    tile/strip calculations
  236. TileDepth        32998    R/W    tile/strip calculations
  237.  
  238. The Matteing and DataType tags have been obsoleted by the 6.0
  239. ExtraSamples and SampleFormat tags.  Consult the documentation on the
  240. ExtraSamples tag and Associated Alpha for elaboration.  Note however
  241. that if you use Associated Alpha, you are expected to save data that is
  242. pre-multipled by Alpha.  If this means nothing to you, check out Porter
  243. & Duff's paper in the '84 SIGGRAPH proceedings: "Compositing Digital
  244. Images".
  245.  
  246. The ImageDepth tag is a non-standard, but registered tag that specifies
  247. the Z-dimension of volumetric data.  The combination of ImageWidth,
  248. ImageLength, and ImageDepth, defines a 3D volume of pixels that are
  249. further specified by BitsPerSample and SamplesPerPixel.  The TileDepth
  250. tag (also non-standard, but registered) can be used to specified a
  251. subvolume "tiling" of a volume of data.
  252.  
  253. The JPEG, Colorimetry, and CMYK tags are additions that appear in TIFF
  254. 6.0.  Consult the TIFF 6.0 specification included in the doc directory.
  255.  
  256.  
  257. The TIFF Library
  258. ----------------
  259. libtiff is the software library that you can use to read and write TIFF
  260. files (most all the tools use it to do their work).  The library
  261. provides two interfaces, one for strip-based images and one for
  262. tile-based images.  The normal interface is through a simple
  263. scanline-based interface that works with images organized as strips.
  264. For example, to read the contents of a file, the following might be used:
  265.  
  266.     #include "tiffio.h"
  267.  
  268.     TIFF *tif;
  269.     unsigned long imagelength;
  270.     char *buf;
  271.     long row;
  272.  
  273.     tif = TIFFOpen("myfile.tif", "r");
  274.     TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imagelength);
  275.     buf = malloc(TIFFScanlineSize(tif));
  276.     for (row = 0; row < imagelength; row++)
  277.         TIFFReadScanline(tif, buf, row);
  278.  
  279. (this example assumes samples are packed contiguously.)  Similarly, to
  280. write a file, something like the following can be used:
  281.  
  282.     tif = TIFFOpen("myfile.tif", "w");
  283.     TIFFSetField(tif, TIFFTAG_IMAGEWIDTH, imagewidth);
  284.     TIFFSetField(tif, TIFFTAG_COMPRESSION, COMPRESSION_LZW);
  285.     ... <set other required tags>
  286.     row = 0;
  287.     while (...more scanlines to write...)
  288.         TIFFWriteScanline(tif, buf, row);
  289.     TIFFClose(tif);
  290.  
  291. (once again, we assume samples are packed contiguously.)
  292.  
  293. A 2D tile-based interface is also provided as an alternative to the
  294. scanline-orientated interfaces.  With this interface, an image is
  295. broken up into a set of rectangular areas called tiles.  All the tiles
  296. in an image have the same size, and the tile width and length must each
  297. be a multiple of 16 pixels.  Tiles are ordered left-to-right and
  298. top-to-bottom in an image.  As for scanlines, samples can be packed
  299. contiguously or separately.  When separated, all the tiles for a sample
  300. are colocated in the file.  That is, all the tiles for sample 0 appear
  301. before the tiles for sample 1, etc.
  302.  
  303. Tiles and strips may also be extended in a z dimension to form
  304. volumes.  Data volumes are organized as "slices".  That is, all the
  305. data for a slice is colocated.  Volumes whose data is organized in
  306. tiles can also have a tile depth so that data can be organized in
  307. cubes.
  308.  
  309. The interface for tiles is similar to scanlines.  To read a tiled image,
  310. code of the following sort might be used:
  311.  
  312.     unsigned long imageWidth, imageLength;
  313.     unsigned long tileWidth, tileLength;
  314.     unsigned long x, y;
  315.     char *buf;
  316.  
  317.     tif = TIFFOpen("myfile.tif", "r");
  318.     TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &imageWidth);
  319.     TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &imageLength);
  320.     TIFFGetField(tif, TIFFTAG_TILEWIDTH, &tileWidth);
  321.     TIFFGetField(tif, TIFFTAG_TILELENGTH, &tileLength);
  322.     buf = malloc(TIFFTileSize(tif));
  323.     for (y = 0; y < imageLength; y += tileLength)
  324.         for (x = 0; x < imageWidth; x += tileWidth)
  325.             TIFFReadTile(tif, buf, x, y, 0);
  326.  
  327. (once again, we assume samples are packed contiguously.)
  328.  
  329. Note that unlike the stdio library, libtiff only supports reading OR
  330. writing of a file.   There is also an append mode, but this has not
  331. really been tested.
  332.  
  333.  
  334. TIFF Tools
  335. ----------
  336. There are two device-dependent programs:
  337.  
  338. o tiffgt is used to display the contents of a TIFF file on a
  339.   framebuffer.  The version included in this release was written
  340.   for the Silicon Graphics Graphics Library (GL), although it
  341.   should be a simple matter to tailor it for other systems.
  342. o tiffsv is used to save all or part of a framebuffer in a
  343.   TIFF file.  Once again, the version of tiffsv included here
  344.   was written for the GL, but should be tailorable to other devices.
  345.   (Note, tiffsv uses the readdisplay routine that was introduced
  346.   in IRIX 4.0.)
  347.  
  348. The remaining programs should be device-independent:
  349.  
  350. o tiffinfo formats information about one or more TIFF files
  351. o tiffdump displays the verbatim contents of the TIFF directory in a
  352.   file (it's very useful for debugging bogus files that you may get from
  353.   someone that claims they support TIFF).
  354. o tiffcp is used to copy, concatenate, and convert TIFF images (e.g.
  355.   switching from Compression=5 to Compression=1).
  356. o tiff2ps is a program that converts a TIFF image to PostScript.
  357. o tiffcmp can be used to compare the contents of two TIFF files (it does
  358.   not check all the directory information, but does check all the data).
  359. o tiff2bw is a simple program to convert a color image to grayscale.
  360. o ras2tiff is a quick hack that converts Sun rasterfile format images to
  361.   TIFF -- it's less than complete.
  362. o rgb2ycbcr converts an RGB, grayscale, or bilevel TIFF image to a
  363.   YCbCr TIFF image.
  364. o gif2tiff is a quick hack that converts GIF 87a format images to TIFF.
  365. o ppm2tiff is a quick hack that converts PPM format images to TIFF.
  366. o fax2tiff converts raw Group 3 facsimile data to TIFF.
  367. o pal2rgb converts a Palette color image to a full color RGB image by
  368.   applying the colormap.
  369. o tiffdither dithers a b&w image into a bilevel image (suitable for
  370.   use in creating fax files)
  371. o tiffsplit creates one or more single-image files from a (possibly)
  372.   multi-image file
  373. o Finally, tiffmedian is a version of Paul Heckbert's median cut program
  374.   that reads an RGB TIFF image, and creates a TIFF palette file as a
  375.   result.  It's useful for converting full-color RGB images to 8-bit
  376.   color for your friends that have cheapo 8-bit framebuffers.
  377.  
  378. There is also:
  379.  
  380. o sgi2tiff, a program to convert SGI image files to TIFF.  This
  381.   program is only useful on SGI machines as it uses -limage.
  382.  
  383. Check out the manual pages for details about the above programs.
  384.  
  385.  
  386. Contributed Stuff
  387. -----------------
  388. The directory contrib has contributed software:
  389.  
  390. contrib/dbs    an X-based TIFF viewer from Dan & Chris Sears (has not
  391.         been updated in a long time and does not compile)
  392. contrib/ras    two programs by Patrick Naughton for converting
  393.         between Sun rasterfile format and TIFF (these
  394.         require libpixrect.a, as opposed to the one in
  395.         tools that doesn't)
  396. contrib/fax2ps    a program that converts TIFF/F images to an encoded
  397.         form of PostScript that is faster to print than just
  398.         dumping a full raster
  399. contrib/vms    scripts and files from Karsten Spang for building
  400.         the library and tools under VMS
  401.  
  402. Don't send me mail asking about these programs.  Send questions
  403. and/or bug reports directly to the authors.
  404.  
  405.  
  406. Documentation
  407. -------------
  408. A copy of the 6.0 spec available by public ftp from sgi.com in the
  409. directory graphics/tiff.  TIFF6.ps is the PostScript of the final 6.0
  410. spec as provided by Aldus.  TIFF6.ps.Z is a compress(1)'d version of
  411. TIFF6.ps.
  412.  
  413.  
  414. Test Images
  415. -----------
  416. Test images are available for most formats supported by the library.
  417. The images are kept in a separate archive that should be located along
  418. with this software.  For example, if the archive that you retrieve was
  419. v3.1.tar.Z, then the images should be in the same directory in an
  420. archive named v3.1pics.tar.Z.
  421.  
  422.  
  423. Building the Software
  424. ---------------------
  425. To configure things for your machine, check for Makefiles in the
  426. libtiff and tools directories for your machine:
  427.  
  428.     Makefile.aix    Makefile for an IBM RS/6000 running AIX 3.x
  429.     Makefile.alpha    Makefile for DEC AlphaAXP, OSF/1 v1.3
  430.     Makefile.apollo    Makefile for an Apollo
  431.     Makefile.convex    Makefile for Convex
  432.     Makefile.gcc    Makefile for use with gcc (the GNU compiler)
  433.     Makefile.hpux    Makefile for HP machines running HP-UX
  434.     Makefile.lcc    Makefile for Atari
  435.     Makefile.mpw    Makefile for an Apple Macintosh with MPW
  436.     Makefile.next    Makefile for NeXT
  437.     Makefile.sco    Makefile for a PC running SCO ODT 2.0 (or similar)
  438.     Makefile.sgi    Makefile for Silicon Graphics
  439.     Makefile.sun    Makefile for a Sun-3 or Sun-4 running SunOS 3.5+
  440.  
  441. If your machine is not represented, you'll have to make up a Makefile
  442. that is right for you.  In libtiff the important things to setup are
  443.  
  444.     AR=/usr/bin/ar            whatever your library archiver is called
  445.     RANLIB=/usr/bin/ranlib        if you need to ranlib a library
  446.     IPATH=-I. -I/usr/include/bsd    list of directories to search includes
  447.     CONF=....                configuring optional support
  448.  
  449. To build the library, just
  450.  
  451.     cd libtiff; make
  452.  
  453. In the tools directory, pick the appropriate Makefile as in the libtiff
  454. directory.  If no Makefile is present for your machine, create one, setup
  455. the MACHALL macro,
  456.  
  457.     MACHALL=ras2tiff tiffgt tiffsv
  458.  
  459. and add definitions for how to build tiffgt and tiffsv for your machine
  460. (if appropriate).  Note also that for building the fax2tiff program, the
  461. CONF_LIBRARY macro in the Makefile MUST agree with the definition in the
  462. Makefile in the libtiff directory!  If this is not true, then fax2tiff
  463. will not work.
  464.  
  465. To build the tools library, just
  466.  
  467.     cd ../tools; make
  468.  
  469.  
  470. Checking out the Software
  471. -------------------------
  472. Assuming you have working versions of tiffgt and tiffsv, you can just
  473. use them to view any of the sample images  (the list is given below).
  474. Otherwise, you can check out the operation of the library with tiffcp
  475. and tiffcmp. For example,
  476.  
  477.     tiffcp -lzw cramps.tif x.tif
  478.     tiffcmp cramps.tif x.tif
  479.  
  480. (tiffcmp should be silent if the files compare correctly).
  481.  
  482.  
  483. Bugs and such....
  484. -----------------
  485. This software is free.  The only thing that I ask in return is that you
  486. tell me when you find a problem or fix a bug.  I also gladly accept
  487. software contributions, although I hesitate to include such software in
  488. my regular stuff if I am personally unable to test it.
  489.  
  490. A mailing list for users of this software is located on sgi.com.
  491. If you want to join this mailing list or have a list-related request
  492. such as getting your name removed from it, send a request to
  493.  
  494.     tiff-request@sgi.com
  495.  
  496. For example, to subscribe, send the line "subscribe" in
  497. the body of your message.  The line "help" will return a list of
  498. the commands understood by the mailing list management software.
  499.  
  500. Submissions (including bug reports) should be directed to:
  501.  
  502.     tiff@sgi.com
  503.  
  504. When corresponding about this software please always specify what
  505. version you have, what system you are running on.
  506.  
  507. If all else fails, I can be reached by sending mail to sam@sgi.com
  508. (but beware that I'm more likely to respond to mail sent to the
  509. mailing list than mail sent directly to me).
  510.  
  511.  
  512. Acknowledgements
  513. ----------------
  514. The LZW algorithm is derived from the compress program (the proper
  515. attribution is included in the source code).  The Group 3 fax stuff
  516. originated as code from Jef Poskanzer, but has since been rewritten
  517. several times.  The latest version uses an algorithm from Michael
  518. Marking -- consult libtiff/mkg3states.c for further information.
  519. Many other people have, by now, helped with bug fixes and code.
  520.  
  521.  
  522. Warning
  523. -------
  524. It appears that Unisys is actively pursuing copyright control on the
  525. LZW compression algorithm.  In particular, users of the LZW compression
  526. within the TIFF framework.  For this reason the TIFF 6.0 spec states
  527. that LZW compression is not recommended.  It is unclear at this time
  528. what compression algorithm will be used in place of it.  I have no idea
  529. what this means to you or to this library.  I make no warranty or
  530. guarantees with regard to the LZW support in this library.
  531.  
  532.  
  533. Use and Copyright
  534. -----------------
  535. Silicon Graphics has seen fit to allow me to give this work away.  It
  536. is free.  There is no support or guarantee of any sort as to its
  537. operations, correctness, or whatever.  If you do anything useful with
  538. all or parts of it you need to honor the copyright notices.   I would
  539. also be interested in knowing about it and, hopefully, be acknowledged.
  540.  
  541.     Sam Leffler    (sam@sgi.com)
  542.  
  543.  
  544.  
  545. Table of Contents
  546. -----------------
  547. At least the following files are included in the distribution:
  548.  
  549. libtiff/tiff.h            TIFF spec definitions
  550. libtiff/tiffio.h        public TIFF library definitions
  551. libtiff/tiffiop.h        private TIFF library definitions
  552. libtiff/tiffcomp.h        OS-compatibility definitions
  553. libtiff/t4.h            CCITT Group 3 1d code tables+definitions
  554. libtiff/tif_fax3.h        CCITT Group 3-related definitions
  555.  
  556. libtiff/tif_aux.c        auxilary directory-related functions
  557. libtiff/tif_ccittrle.c        CCITT 1d Huffman compression
  558. libtiff/tif_compress.c        list of supported compression algorithms
  559. libtiff/tif_dir.c        directory tag interface code
  560. libtiff/tif_dirinfo.c        directory known tag support code
  561. libtiff/tif_dirread.c        directory reading code
  562. libtiff/tif_dirwrite.c        directory writing code
  563. libtiff/tif_dumpmode.c        "no" compression algorithm
  564. libtiff/tif_fax3.c        CCITT Group 3 fax compression
  565. libtiff/tif_fax4.c        CCITT Group 4 fax compression
  566. libtiff/tif_getimage.c        code to read an entire image into an RGBA raster
  567. libtiff/tif_jpeg.c        JPEG compression placeholder
  568. libtiff/tif_lzw.c        LZW encoding and decoding
  569. libtiff/tif_next.c        NeXT 2-bit decoding algorithm (no encoding)
  570. libtiff/tif_open.c        open and simply query code
  571. libtiff/tif_packbits.c        Packbits encoding and decoding
  572. libtiff/tif_print.c        directory printing support
  573. libtiff/tif_swab.c        byte and bit swapping support
  574. libtiff/tif_strip.c        some strip-related code
  575. libtiff/tif_thunder.c        Thunderscan decoding (no encoding)
  576. libtiff/tif_tile.c        some tile-related code
  577. libtiff/tif_unix.c        UNIX-related OS support
  578. libtiff/tif_apple.c        Apple-related OS support
  579. libtiff/tif_msdos.c        MSDOS-related OS support
  580. libtiff/tif_vms.c        VMS-related OS support
  581. libtiff/mkg3states.c        program to generate G3 decoding state tables
  582. libtiff/mkspans.c        program to generate black-white span tables
  583.  
  584. tools/getopt.c        public domain getopt from Berkeley used by tools
  585. tools/fax2tiff.c    convert raw facsimile data to TIFF
  586. tools/gif2tiff.c    convert GIF87 file to TIFF
  587. tools/pal2rgb.c        convert TIFF Palette image to TIFF RGB
  588. tools/ppm2tiff.c    convert PPM image file to TIFF
  589. tools/ras2tiff.c    convert Sun rasterfile format to TIFF (limited)
  590. tools/rgb2ybcr.c    convert TIFF to YCbCr TIFF
  591. tools/sgi2tiff.c    convert SGI image file to TIFF
  592. tools/sgigt.c        TIFF picture get for SGI framebuffer (uses GL)
  593. tools/sgisv.c        save image on SGI framebuffer in TIFF file
  594. tools/tiff2bw.c        convert color TIFF file to B&W
  595. tools/tiff2ps.c        convert TIFF to PostScript
  596. tools/tiffcmp.c        compare two TIFF files
  597. tools/tiffcp.c        copy/convert TIFF files (used to change compression)
  598. tools/tiffdither.c    dither grayscale to bilevel
  599. tools/tiffdump.c    dump TIFF header and directory tags w/o library
  600. tools/tiffinfo.c    print info about TIFF file(s)
  601. tools/tiffmedian.c    median cut RGB -> palette conversion program
  602. tools/tiffsplit.c    split a multi-page TIFF into single-page TIFFs
  603. tools/ycbcr.c        RGB->YCbCr->RGB test program
  604.  
  605. man/man1        UNIX manual pages for tools
  606. man/man3        UNIX manual pages for libtiff functions
  607.